Using virtual environment '~/.virtualenvs/r-reticulate' ...
PROGRAMME PTME
Caris Foundation | Tracking des femmes enceintes en PTME
1 Cohorte de la Semaine du 9 au 15 février 2026
1.1 Liste des Femmes Enceintes
2 Résumé des Services en PTME
Semaine du 9 au 15 février 2026
2.1 Femmes en Club par Bureau
2.2 Liste des Femmes Enceintes non en Club
2.3 Femmes avec Services (Appels/Visites) par Bureau
2.4 Liste des Femmes qui n’ont PAS de Services
2.5 Femmes avec Comptage de Ménage par Bureau
2.6 Liste des Femmes sans Comptage de Ménage
2.7 Femmes au 3ème Trimestre par Bureau
2.8 Liste des Femmes au 3ème Trimestre de grossesse sans ARV
3 ACTIVITÉS DE LA
Semaine du 9 au 15 février 2026
3.0.1 Sessions de Club de la Semaine
3.0.2 Raisons d’absences en Club de la Semaine
3.0.3 Appels et Visites de la Semaine
3.0.4 Comptages de Ménage de la Semaine
Aucun comptage de ménage cette semaine
3.0.5 Résumé Hebdomadaire par Type d’Activité
'import matplotlib.pyplot as plt\nimport numpy as np\n\n# Filtrer les présents pour les sessions de club\nclub_present_week = club_attendance_week[club_attendance_week[\'presence\'] == \'present\'] if len(club_attendance_week) > 0 else 0\n\n# Données pour le graphique de résumé\nactivities = [\'Sessions Club (Présents)\', \'Appels/Visites\', \'Comptages Ménage\']\ncounts = [len(club_present_week), len(appel_visit_week), len(ptme_household_week)]\n\n# Créer un DataFrame pour trier par ordre décroissant\nimport pandas as pd\ndata = pd.DataFrame({\'activities\': activities, \'counts\': counts})\ndata_sorted = data.sort_values(\'counts\', ascending=True) # ascending=True pour barh (plus grand en haut)\n\n# Créer le graphique en barres horizontales\nplt.figure(figsize=(12, 8))\ncolors = [\'#2ca02c\', \'#ff7f0e\', \'#9467bd\']\n# Réorganiser les couleurs selon l\'ordre trié\ncolor_map = dict(zip(activities, colors))\nsorted_colors = [color_map[act] for act in data_sorted[\'activities\']]\n\nbars = plt.barh(data_sorted[\'activities\'], data_sorted[\'counts\'], \n color=sorted_colors, alpha=0.8, edgecolor=\'black\')\n\n# Ajouter les valeurs sur les barres\nfor bar, count in zip(bars, data_sorted[\'counts\']):\n width = bar.get_width()\n plt.text(width + 0.5, bar.get_y() + bar.get_height()/2.,\n f\'{int(count)}\', ha=\'left\', va=\'center\', fontsize=14, fontweight=\'bold\')\n\nplt.title(f\'Résumé des Activités PTME\nSemaine du {week_start.strftime("%d/%m/%Y")} au {week_end.strftime("%d/%m/%Y")}\', \n fontsize=16, fontweight=\'bold\', pad=20)\nplt.xlabel(\'Nombre d\'Activités\', fontsize=12, fontweight=\'bold\')\nplt.ylabel(\'Type d\'Activité\', fontsize=12, fontweight=\'bold\')\nplt.grid(axis=\'x\', alpha=0.3)\nplt.tight_layout()\nplt.show()'